﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;
using Conexion;
using System.Windows.Forms;
/*Lista de las incapacidades 
 * 
 */
namespace Autorizacion_facturas_caja
{
    public partial class frmIncapacidades_Lista_estado : Form
    {
        Manejador_Empleado_Captura Mane = new Manejador_Empleado_Captura();
        Manejador_Incapacidades Man = new Manejador_Incapacidades();
        public objIncapacidades objI = new objIncapacidades();
        public objRH objR = new objRH();


        public frmIncapacidades_Lista_estado()
        {
            InitializeComponent();
            ObtieneDatosCombo();

             ToolTip1();
              llenaDatagrid();
        }
      
        #region Funciones
        private void ObtieneDatosCombo()
        {
            //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
            cmbSucursal.DataSource = Mane.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }
        private void propiedadesColumnas()
        {
            try
            {
                //Quita la primera Columna
                this.dataGridView1.RowHeadersVisible = false;

                //Oculta las columnas
                this.dataGridView1.Columns["id_empleado"].Visible = false;
                this.dataGridView1.Columns["id_sucursal"].Visible = false;
                this.dataGridView1.Columns["id_jefe"].Visible = false;
                this.dataGridView1.Columns["nombre"].Visible = false;
                this.dataGridView1.Columns["apellidos"].Visible = false;
                this.dataGridView1.Columns["estatus"].Visible = false;
                this.dataGridView1.Columns["cuenta_banco"].Visible = false;
                this.dataGridView1.Columns["id_incapacidad"].Visible = false;
                this.dataGridView1.Columns["id_empleado1"].Visible = false;
                this.dataGridView1.Columns["comentarios"].Visible = false;
                this.dataGridView1.Columns["estatus1"].Visible = false;
                this.dataGridView1.Columns["fecha_ingreso"].Visible = false;
                this.dataGridView1.Columns["estado"].Visible = false;
                this.dataGridView1.Columns["id_enlace"].Visible = false;
                this.dataGridView1.Columns["hora"].Visible = false;
                this.dataGridView1.Columns["pagar"].Visible = false;
                this.dataGridView1.Columns["porciento"].Visible = false;
                this.dataGridView1.Columns["empresa"].Visible = false;
                //Orden columnas
                this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
                this.dataGridView1.Columns["departamento"].DisplayIndex = 1;
                this.dataGridView1.Columns["puesto"].DisplayIndex = 2;
                this.dataGridView1.Columns["tipo"].DisplayIndex = 4;
                this.dataGridView1.Columns["folio"].DisplayIndex = 5;
                this.dataGridView1.Columns["fecha_inicio"].DisplayIndex = 6;
                this.dataGridView1.Columns["fecha_fin"].DisplayIndex = 7;
                this.dataGridView1.Columns["dias"].DisplayIndex = 8;

                //Renombra
                this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "EMPLEADO";
                this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
                this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
                this.dataGridView1.Columns["tipo"].HeaderText = "TIPO";
                this.dataGridView1.Columns["fecha_inicio"].HeaderText = "FECHA INICIO";
                this.dataGridView1.Columns["fecha_fin"].HeaderText = "FECHA FIN";
                this.dataGridView1.Columns["dias"].HeaderText = "DÍAS";
                this.dataGridView1.Columns["folio"].HeaderText = "FOLIO";

                //Alinea el contenido de la celda

                this.dataGridView1.Columns["Nombre_apellidos"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["tipo"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["fecha_inicio"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["fecha_fin"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["dias"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["folio"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                /*
                this.dataGridView1.Columns["departamento"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["puesto"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                */
                this.dataGridView1.Columns["fecha_inicio"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["fecha_fin"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["dias"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Nombre_apellidos"].Width = 250;
                this.dataGridView1.Columns["fecha_inicio"].DefaultCellStyle.Format = "d";
                this.dataGridView1.Columns["fecha_fin"].DefaultCellStyle.Format = "d";
            }
            catch { }
        }
        private void ToolTip1()
        {
            ToolTip toolTip1 = new ToolTip();
            toolTip1.ShowAlways = true;
            toolTip1.SetToolTip(this.btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(this.btnSalir, "REGRESAR");
   
        }
        private void llenaDatagrid() {
            obtieneDatos();
            dataGridView1.DataSource = Man.ListaIncapacitacion_(objR.Buscar, objR.SucId, objI.Tipo, objI.Estado);
            propiedadesColumnas();
        }
        private void obtieneDatos() {
            objR.Buscar = txtEmpleado.Text.Trim();
            objR.SucId = cmbSucursal.SelectedValue.ToString();
            objR.Nombre_Sucursal = cmbSucursal.Text;
            objI.Estado = cmbEstado.Text;
            objI.Tipo = cmbTipo.Text;

        }
        #endregion
        #region Botones
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                obtieneDatos();
                dataGridView1.DataSource = Man.ListaIncapacitacion_(objR.Buscar, objR.SucId, objI.Tipo, objI.Estado);
                propiedadesColumnas();
            }
            catch { MessageBox.Show("SELECCIONE ATRIBUTOS PARA LA BUSQUEDA"); }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Close();
        }
        #endregion
        #region Eventos
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex != 0 && e.RowIndex >= 0)
            {
                if (MessageBox.Show("GENERAR REPORTE", "AVISO", MessageBoxButtons.OKCancel) == DialogResult.OK)
                    try
                    {
                        objR.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                        // objR.SucId = dataGridView1[1, e.RowIndex].Value;
                        objR.Puesto = dataGridView1[5, e.RowIndex].Value.ToString();
                        objR.Departamento = dataGridView1[7, e.RowIndex].Value.ToString();
                        objR.Fecha =Convert.ToDateTime(dataGridView1[6, e.RowIndex].Value);
                        objR.Nombre_completo = dataGridView1[25, e.RowIndex].Value.ToString();

                        objI.Id_Incapacidad = Convert.ToInt32(dataGridView1[11, e.RowIndex].Value);
                        objI.Tipo = dataGridView1[13, e.RowIndex].Value.ToString();
                        objI.Fecha_Inicio = Convert.ToDateTime(dataGridView1[14, e.RowIndex].Value);
                        objI.Fecha_Fin = Convert.ToDateTime(dataGridView1[15, e.RowIndex].Value);
                        objI.Dias = Convert.ToInt32(dataGridView1[16, e.RowIndex].Value);
                        objI.Folio = dataGridView1[17, e.RowIndex].Value.ToString();
                        objI.Comentarios = dataGridView1[18, e.RowIndex].Value.ToString();
                        objI.Estado = dataGridView1[20,e.RowIndex].Value.ToString();
                        objI.Pagar = dataGridView1[21, e.RowIndex].Value.ToString();
                        objI.Porciento =Convert.ToInt32(dataGridView1[22, e.RowIndex].Value);

                        DataTable data = new DataTable();
                      
                        frmIncapacidades_Reportes frm = new frmIncapacidades_Reportes(1, objI, objR, data); 
                        frm.ShowDialog();
                  
                    }
                    catch { MessageBox.Show("ERROR DE CONEXIÓN","ALERTA"); }
            }
        }

        private void cmbSucursal_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaDatagrid();
        }

        private void cmbEstado_SelectedIndexChanged(object sender, EventArgs e)
        {

            llenaDatagrid();

        }

        private void cmbTipo_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaDatagrid();
        }

        private void txtEmpleado_TextChanged(object sender, EventArgs e)
        {
            llenaDatagrid();
        }
        #endregion


      
    }
}
